API e APIv2
O bloco API permite realizar chamadas API utilizando o protocolo HTTP. Existem dois blocos disponíveis: "API" e "APIv2".
O bloco "APIv2" é a versão mais recente, trazendo diversas melhorias e atualizações constantes, sendo a opção recomendada para uso.
Diferenças!
- API v1: para utilizar o retorno da API, a resposta precisa estar em um template predefinido.
- API v2: não possui um modelo fixo de resposta, podendo ser utilizado para fazer requisições em qualquer API, armazenando o retorno com base no mapeamento JSON.
Configurações do bloco "API e APIv2" no Digital Contact Bots
API v1
O "APIv1" é um bloco baseado em template de resposta, permitindo armazenar variáveis de retorno ou enviar mensagens.
O menu lateral do bloco contém os seguintes campos:
- URL endpoint: onde o endpoint da API é inserido.
- Editar Json payload: ao clicar neste botão, um modal é aberto.
Neste modal, você pode inserir o payload da requisição no formato JSON. Também é possível adicionar variáveis do fluxo, utilizando o botão “Adicionar variáveis”.
- Método HTTP: define o método HTTP da requisição.
- Aguardar resposta da API: se ativado, o bloco aguardará a resposta da API antes de prosseguir. O tempo de espera deve ser configurado em milissegundos, com um valor padrão de 10000ms (10 segundos).
- Ver formatos da resposta: abre um modal exibindo os formatos de resposta suportados pelo bloco. Se a resposta da API corresponder a algum desses formatos, uma mensagem será enviada ou o valor de variáveis do fluxo será alterado.
API v2
A "APIv2" permite realizar requisições HTTP sem um modelo fixo de resposta, armazenando variáveis de retorno com base no mapeamento JSON.
Menu lateral
- URL endpoint: define o endpoint da API
- Método HTTP: define o método HTTP da requisição.
- Adicionar Header: ao clicar neste botão, a opção de adicionar um header à requisição será exibida.
- Editar Json payload: ao clicar neste botão, um modal será aberto.
Neste modal, você pode inserir o payload da requisição em JSON e adicionar variáveis do fluxo através do botão “Adicionar variáveis”.
- Variáveis: permite salvar a resposta da requisição em variáveis, que são armazenadas no formato chave/valor do mapeamento JSON.
- O campo “Variável” define a variável do fluxo onde o valor será armazenado.
- O campo “Valor” representa a chave correspondente ao nome dos atributos da classe.
Por exemplo, Se uma API retornar a seguinte resposta:
{"local" : "Brasil",
"DDI" : 55,
"moeda" : "Real",
}
Podemos armazenar esses valores nas variáveis da seguinte forma:
- Aguardar resposta da API: se ativado, o bloco aguardará a resposta da API antes de prosseguir. O tempo de espera deve ser configurado em milissegundos, com um valor padrão de 10000ms (10 segundos).
- Mensagem de resposta durante processamento: define a mensagem enviada ao usuário enquanto a requisição está sendo processada.
Limitações e Processamento do Bloco "APIv2"
Processamento de Variáveis
- Todas as variáveis delimitadas por
$$no payload (body) são substituídas pelo respectivo valor.- Exemplo:
"nome": "$$nome$$"será processado como"nome": "João".
- Exemplo:
Escape de Caracteres
- Apenas os seguintes caracteres são escapados dentro das variáveis:
"(aspas duplas) =\"\(contrabarra) =\\
Validação de JSON
- O payload é validado com
JSON.parse()para garantir a integridade do JSON.- Em caso de falha, um erro será registrado na tela de log de erros.
Padrão de JSON Aceito
- O JSON deve seguir o padrão:
- Chaves (keys) delimitadas por aspas duplas.
- Valores string delimitados por aspas duplas.
- Valores booleanos, numéricos ou objetos podem ser usados sem delimitadores.
Exemplo de JSON Válido
{
"nome": "João d`a Silva",
"documentos": {
"rg": 123456,
"cpf": "12345678`909"
},
"valido": true,
"idade": 40.5,
"filiacao": [
{
"mae": {
"nome": "Maria da Silva",
"idade": 82
}
},
{
"pai": {
"nome": "José d'a Silva",
"idade": 84
}
}
]
}